Grid computing uses the resources of a many separate computers connected by a network (usually the Internet) to solve large-scale computation problems or problems that are best solved using distributed computing techniques. For example, grid computing may be used on tasks such as protein folding, research into drugs for cancer, mathematical problems, and climate models. These projects typically work by running as a screensaver on users' personal computers, which process small pieces of the overall data while the computer is not being used.
Grid computing has the ability to aid in solving problems too big for any single supercomputer, while retaining the flexibility to work on multiple smaller problems. Thus grid computing typically executes in a multi-user environment. Furthermore, grid computing may be able utilize the available computing power, and cater for the intermittent demands of large computational exercises.
Grid computing typically involves sharing heterogeneous resources (based on different platforms, hardware/software architectures, and computer languages), located in different places potentially belonging to different administrative domains over a network typically using open standards.
Thus while grid computing provides several advantages, several issues are associated with grid computing. First, grid computing typically requires a central management authority that controls the use of computers participating in the grid. The central management authority determines what application is run when resources become available on a participating grid computer. This can lead to complicated configuration issues.
Second, participating computers must typically expose details about themselves to the central authority. For example, a participating computer will typically expose the available resources capable of being dedicated to a grid application. These details may be exploited by malicious third parties desiring to take control of a grid computer.